home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / gui / gtlayout.lha / Source / LT_UpdateStrings.c < prev    next >
C/C++ Source or Header  |  1998-09-09  |  2KB  |  82 lines

  1. /*
  2. **    GadTools layout toolkit
  3. **
  4. **    Copyright © 1993-1998 by Olaf `Olsen' Barthel
  5. **        Freely distributable.
  6. **
  7. **    :ts=4
  8. */
  9.  
  10. #ifndef _GTLAYOUT_GLOBAL_H
  11. #include "gtlayout_global.h"
  12. #endif
  13.  
  14. #include "Assert.h"
  15.  
  16. STATIC VOID
  17. LTP_UpdateStrings(ObjectNode *Group)
  18. {
  19.     ObjectNode    *Node;
  20.     ULONG         Page;
  21.  
  22.     SCANPAGE(Group,Node,Page)
  23.     {
  24.         switch(Node->Type)
  25.         {
  26.             case FRACTION_KIND:
  27.             case PASSWORD_KIND:
  28.             case STRING_KIND:
  29.             case INTEGER_KIND:
  30.  
  31.                 if(Node->Host)
  32.                     LTP_PutStorage(Node);
  33.  
  34.                 break;
  35.  
  36.             case GROUP_KIND:
  37.  
  38.                 LTP_UpdateStrings(Node);
  39.                 break;
  40.         }
  41.     }
  42. }
  43.  
  44. /****** gtlayout.library/LT_UpdateStrings ******************************************
  45. *
  46. *   NAME
  47. *    LT_UpdateStrings -- Make sure all visible string buffer contents
  48. *                        get written into storage (v9).
  49. *
  50. *   SYNOPSIS
  51. *    LT_UpdateStrings(LayoutHandle);
  52. *                            A0
  53. *
  54. *    VOID LT_UpdateStrings(struct LayoutHandle *);
  55. *
  56. *   FUNCTION
  57. *    The user can terminate input into a string gadget or an object
  58. *    derived from a string gadget by various means. They all have
  59. *    in common that the application receives no notification that
  60. *    the string gadget contents have changed. This is particularly
  61. *    nasty with objects which make use of LA_STRPTR or other
  62. *    tags. Using LT_UpdateStrings() you can force all visible string
  63. *    gadget objects to hand over their contents to the internal
  64. *    buffers. Do this before you eventually exit your input loop.
  65. *
  66. *   INPUTS
  67. *    LayoutHandle - Pointer to LayoutHandle structure.
  68. *
  69. *   RESULT
  70. *    none
  71. *
  72. ******************************************************************************
  73. *
  74. */
  75.  
  76. VOID LIBENT
  77. LT_UpdateStrings(REG(a0) LayoutHandle *Handle)
  78. {
  79.     if(Handle)
  80.         LTP_UpdateStrings(Handle->TopGroup);
  81. }
  82.